/*
	WeaponFluxWave.h
	(c)2004 Palestar Inc, Richard Lyle
*/

#ifndef WEAPONFLUXWAVE_H
#define WEAPONFLUXWAVE_H

#include "Game/GadgetAreaWeapon.h"



//----------------------------------------------------------------------------

class WeaponFluxWave : public GadgetAreaWeapon
{
public:
	DECLARE_WIDGET_CLASS();

	// NounGadget interface
	Type type() const
	{
		return WEAPON_CLOSE;
	}
	int	maxDamage() const
	{
		return (3400 + (level() * 100))* enhancementModifier( enhancementSystem(), NounEnhancement::MT_DAMAGE );
	}
	int addValue() const
	{
		return 10000;
	}
	int buildTechnology() const
	{
		return 45;
	}
	int	buildCost() const
	{
		return 150;
	}
	dword buildFlags() const
	{
		return NounPlanet::FLAG_METALS;
	}
	int	buildTime() const
	{
		return 260;
	}
	// GadgetAreaWeapon interface
	int	energyNeeded() const
	{
		return 18000* enhancementModifier( enhancementSystem(), NounEnhancement::MT_ENERGY );
	}
	int	chargeRate() const
	{
		return (15 + level())* enhancementModifier( enhancementSystem(), NounEnhancement::MT_COOLDOWN );
	}
	float range() const
	{
		return (250.0f + (level() * 5.0f))* enhancementModifier( enhancementSystem(), NounEnhancement::MT_RANGE );
	}
	int	damageCaused() const
	{
		/* old
		return 7500;
		*/
		return 5000* enhancementModifier( enhancementSystem(), NounEnhancement::MT_DAMAGE );
	}// x2 -JBUD-
	int damageRandom() const
	{
		/* old
		return 2500;
		*/
		return 3000* enhancementModifier( enhancementSystem(), NounEnhancement::MT_DAMAGE );
	}//x2 -JBUD-
	dword damageType() const
	{
		return DAMAGE_EMP | DAMAGE_ENERGY;
	}
};




#endif

//----------------------------------------------------------------------------
//EOF
